package com.cmc.cloud.cmclink.doc.api.document.req;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.hibernate.validator.constraints.Length;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.math.BigDecimal;

/**
 * VMG信息创建 Request VO
 *
 * @author codegen
 */
@Schema(description = "管理后台 - VMG信息创建 Request VO")
@Data
@AllArgsConstructor
@NoArgsConstructor
public class VgmImportReqDto {
    @Schema(description = "提单号")
    @Length(max = 50, message = "{VgmImportReqVO.blno.length}")
    private String blNo;

    @Schema(description = "订舱号")
    private String bookingNo;

    @Schema(description = "箱号", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotBlank(message = "{VgmImportReqVO.cntrno.notblank}")
    @Length(max = 12, message = "{VgmImportReqVO.cntrno.length}")
    private String cntrNo;

    @Schema(description = "重量")
    @NotNull(message = "{VgmImportReqVO.weight.notNull}")
    private BigDecimal weight;

    @Schema(description = "称重方式")
    @Length(max = 3, message = "{VgmImportReqVO.typecode.length}")
    @NotBlank(message = "{VgmImportReqVO.typeCode.notblank}")
    private String typeCode;

    @Schema(description = "称重地点")
    @Length(max = 100, message = "{VgmImportReqVO.address.length}")
    private String address;

    @Schema(description = "称重时间")
    private String time;

    @Schema(description = "验证签名")
    @Length(max = 100, message = "{VgmImportReqVO.signature.length}")
    private String signature;

    @Schema(description = "数据来源网厅web 、edi、api、手动manual")
    @Length(max = 20, message = "{VgmImportReqVO.datasource.length}")
    private String dataSource;

    @Schema(description = "错误信息原因")
    private String msg;

}
